package com.sk.leetcode.arithmetic.test1_10;

import java.util.Arrays;

/**
 * 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 。
 * <p>
 * 请找出这两个有序数组的中位数。要求算法的时间复杂度为 O(log2(m+n)) 。
 * <p>
 * 你可以假设 nums1 和 nums2 不同时为空。
 */
public class Test4 {

    public static void main(String[] args) {
        int[] nums1 = {1, 2};
        int[] nums2 = {3, 4};
        double d = findMedianSortedArrays(nums1, nums2);
        System.out.println(d);
    }

    public static double findMedianSortedArrays(int[] nums1, int[] nums2) {
        int[] numAll = new int[nums1.length + nums2.length];
        System.arraycopy(nums1, 0, numAll, 0, nums1.length);
        System.arraycopy(nums2, 0, numAll, nums1.length, nums2.length);
        numAll = Arrays.stream(numAll).sorted().toArray();

        if(numAll.length % 2 == 0) {
            return (numAll[(numAll.length/ 2-1)] + numAll[numAll.length / 2]) / 2.0;
        }
        return numAll[(numAll.length-1) / 2];
    }
}
